今天來講解昨天的程式碼,
xml就不贅述了,
對xml有興趣跟我說一下,
我再找機會補充吧...
今天主要針對java檔案來做說明,
為了要取得Button物件要import android.widget.Button;
為了要取得EditText物件要import android.widget.EditText;
為了要取得TextView物件要import android.widget.TextView;
其實這部分Android Studio會給提示,
所以也不用特別去記要引入什麼專案路徑,
Button button = (Button)findViewById(R.id.button);
取得Button的物件
button.setOnClickListener(calcBMI);
要import android.view.View;
這個是註冊按鈕的點擊事件,
其實Android要觸發事件有3~4種方式,
這個從明天開始為期幾天的番外篇
會說明這部分,
那這個button註冊的事件在下面
private OnClickListener calcBMI = new OnClickListener() {
@Override
public void onClick(View v) {
}
};
這是按鈕事件的基本架構,當使用者按下按鈕時,就會觸發OnClickListener類型的事件函式,這個範例的所有程式邏輯與運算內容,都會放在這個事件函式中。在使用時須先匯入OnClickListener類別
以下是按鈕事件的內容說明
EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
//身高
double height = Double.parseDouble(fieldheight.getText().toString())/100;
//體重
double weight = Double.parseDouble(fieldweight.getText().toString());
//計算出BMI值
double BMI = weight / (height*height);
取得編輯欄位物件,並取得運算結果
//結果
TextView result = (TextView)findViewById(R.id.result);
result.setText(getText(R.string.bmi_result)
+ nf.format(BMI));
//建議
TextView fieldsuggest = (TextView)findViewById(R.id.suggest);
if(BMI > 25) //太重了
fieldsuggest.setText(R.string.advice_heavy);
else if(BMI < 20) //太輕了
fieldsuggest.setText(R.string.advice_light);
else //剛剛好
fieldsuggest.setText(R.string.advice_average);
將結果顯示出來
明天開始進入番外篇